package com.vhall.component.entity.sign.vo;


import com.vhall.component.framework.common.annotation.ParamName;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 发起签到请求VO
 */
@Data
public class SignAddReqVO implements Serializable {

    @ParamName("app_id")
    @NotBlank(message = "应用appId不能为空")
    @Length(max = 32)
    private String appId;


    /**
     * 邀请卡名称
     */
    @ParamName("creator_id")
    @NotBlank(message = "创建者ID不能为空")
    @Length(max = 255)
    private String creatorId;

    /**
     * 来源ID
     */
    @ParamName("room_id")
    @NotBlank(message = "来源ID不能为空")
    @Length(max = 255)
    private String roomId;

    /**
     * 签到显示的时间，单位秒
     */
    @ParamName("show_time")
    @NotNull(message = "签到显示的时间不能为空")
    @Range(min = 1)
    private Integer showTime;

    /**
     * 创建者昵称
     */
    @ParamName("creator_nickname")
    @Length(max = 255)
    private String creatorNickname;

    /**
     * 是否默认：0 否 1 默认
     */
    @ParamName("creator_avatar")
    @Length(max = 255)
    private String creatorAvatar;

    /**
     * 标题
     */
    @Length(max = 255)
    private String title;

    /**
     * 签到类型：1.自动签到，0.普通签到
     */
    @ParamName("sign_type")
    @Range(min = 0, max = 1)
    private Integer signType;

    /**
     * 签到间隔(分钟)
     */
    @ParamName("check_in_interval")
    private Integer checkInInterval;

}
